The use of fingerprinting is well known for identifying individuals as well as a tool in criminal investigations. Fingerprints are particular to the individual, but may be classified into major types based upon their pattern (right loop, left loop, whirl, arch, tented arch, etc.). Each type has its own distinguishing characteristics, even though every fingerprint within a given type is distinct. All people have one of these fingerprint types.
Two fingerprints taken from the same finger of the same individual a matter of seconds apart will vary considerably. This results from the fact that different amounts of ink may be applied to the finger, and that the finger rolls and finger impressions will never quite be identical. The challenges associated with classifying particular types of fingerprints and/or identifying fingerprints become evident when both their many potential patterns and difficulties in obtaining indicative samples are taken into consideration.
Largely based upon the complexity of automating the classification of fingerprint types and identification of fingerprints, the FBI and the local police agencies still primarily use manual methods. The manual methods are notoriously slow, boring, and not always reliable. This is a task which begs for automation.
Prior attempts to automate the classification and/or identification of fingerprints have generally concentrated upon considering the characteristics of the entire fingerprint. The major problem with this approach is that fingerprints are so complex that extremely large amounts of computer storage space are required to classify fingerprints by types. This tends to slow down the identification process, and make the automated process less efficient.
In general, large areas of each fingerprint do not contain any information that is useful for fingerprint type classification and identification. Fingerprints, in fact, are more readily classified by the local patterns in locations where the direction of the ridges and valleys change rapidly (as, for example, whorl local pattern locations and delta local pattern locations). Therefore, in classifying fingerprints according to type, it would be very useful to determine the relative positions of the fingerprint where the ridges change directions rapidly (also known as local pattern locations), and the pattern form which is characterized at each local pattern location.
Another characteristic of prior attempts to automate the classification of fingerprinting is that they involve systems which have a very slow learning process. Addition of learning processes proved extremely useful over non-learning techniques since the use of learning process programs provide for more accurate fingerprint classification (after the fingerprint classification system has been run for some period.) Typically, the quicker the computer program can "learn" to properly identify fingerprint types, the more useful the system.
The present invention provides a system which provides for very rapid learning, since only relatively small portions of the fingerprint are used (local patterns). It is generally much simpler to provide an accurate, rapid learning, program which is based on a relatively small, easily detectable amounts of data than large amounts of data, much of which is often irrelevant for fingerprint classification.
It would therefore be highly desirable to have a system where all local pattern locations, and the form of the local patterns, could be identified quickly. In this manner, each fingerprint could be readily classified using a rule based computer program that operates on the local pattern information. This technique of fingerprint classification would consume a minimal amount of memory relative to the prior art approach of storing the entire fingerprint image. It would also be desirable to employ a rapid learning algorithm with this computer program, such that it would become more effective as more fingerprints are encountered. The learning algorithm is based upon such neural networks (using Bayesian or fuzzy logic) and expert systems. The computer program would be robust in nature, would be model based, and would have a demonstrated capability of handling and quickly learning by using data (such as fingerprint data) which is statistical in nature.